The proliferation of computer networks has necessitated the development of methods for justifying the time settings on individual computers connected to a network. For example, when any event that has a temporal component occurs in one computer connected to a communications network, and the event needs to be conveyed from that computer to another computer on the network, the time recorded by the first computer must be justified to the time kept by the second computer. A solution has been to implement a real-time clock in each device synchronized to the time kept on a real-time server using, for example, the simplified network time protocol (SNTP), which is defined in Request for Comments (RFC) 2030. SNTP is an adaptation of the network time protocol (NTP) used to synchronize computer clocks on the internet. SNTP can be used when the ultimate performance of the full NTP implementation is not needed or justified. SNTP is a simplified access strategy for servers and clients using NTP as specified and deployed in the internet.
In SNTP, an event is time stamped using the current value of the local clock. Since the various computers on an SNTP network are assumed to be synchronized, an event timestamp sent from one computer on the network to another computer on the network is used without modification. SNTP implementation requires a real-time clock server active on the network, assumes all devices on the network have been synchronized, and requires eight bytes of data to contain the timestamp value in a message between computers on the network.
SNTP uses the standard NTP timestamp format, which specifies time as a fixed-point binary number including a 32-bit integer segment and a 32-bit fraction segment. Thus SNTP timestamps are represented as a 64-bit unsigned fixed-point number in seconds relative to 0 hours on Jan. 1, 1900. The timestamp is stored in big-endian fashion, starting from the high-order or left hand position.
In some situations, these requirements may not be available to the system. In such cases, a method is needed to pass timestamp information between devices with independent clocks. Furthermore, most devices have a clock with a finite limit to the number of clock ticks that can be counted. When this value is reached, the next tick results in the time value rolling over to zero, resulting in an invalid timestamp value. Accordingly, it is desirable to provide a method and apparatus that pass timestamp information between devices with independent clocks on a network. Furthermore, it is desirable that the method and apparatus account for a possible rollover of the tick count.